from d2l import torch as d2l
import numpy as np
import matplotlib as plt
x=np.linspace(-1,1,50)#-1到1划分50个点,越多越准
y1=2*x+1
y2=2*x**2+1
d2l.plt.figure()
d2l.plt.plot(x,y1)
#figure下的都显示到该figure上

d2l.plt.figure(num=3,figsize=(8,5))#画布标号 画布尺寸 图例标签
d2l.plt.plot(x,y2,label='up')
d2l.plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down')#线色 线宽 线形 图例标签

d2l.plt.legend()#输出图例
'''
d2l.plt.figure(num=3,figsize=(8,5))#画布标号 画布尺寸 图例标签
l1,=d2l.plt.plot(x,y2,label='up')
l2,=d2l.plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='down')#线色 线宽 线形 图例标签
d2l.plt.legend(handles=[l1,l2,],labels=['aaa','bbb'],loc='best')#要显示的线 要显示的标签覆盖 位置的选择'''



d2l.plt.xlim((-1,2))#x的范围
d2l.plt.ylim((-2,3))#y的范围

d2l.plt.xlabel('I am x')#x轴标签
d2l.plt.ylabel('I am y')#y轴标签

new_ticks=np.linspace(-1,2,5)#脚标 -1到2 分5个单位
d2l.plt.xticks(new_ticks)

d2l.plt.yticks([-2,-1.8,-1,1.22,3,],['really bad','bad','normal','good','really good'])#对应数字变成wenzi
#好看的输出[r'$really\ bad$',r'$bad$',r'$normal$',r'$good$',r'$really\ good$']
#\alpha可以转成数学符号的阿尔法

#移动坐标轴
ax=d2l.plt.gca()#获得到坐标轴
ax.spines['right'].set_color('none')#坐标轴右面的‘脊’，设置为不可见
ax.spines['top'].set_color('none')#坐标轴上面的‘脊’，设置为不可见
ax.xaxis.set_ticks_position('bottom')#x轴默认为下面的‘脊’
ax.yaxis.set_ticks_position('left')#y轴默认为左面的‘脊’
ax.spines['bottom'].set_position(('data',0))#零处为x轴原点 'data'按数来移动 ‘axes'按坐标轴比例来移动
ax.spines['left'].set_position(('data',0))#零处为y轴原点


d2l.plt.show()